import request from '@/utils/request'

// 获取管理员信息
export function getAdminInfo() {
  return request({
    url: '/api/v1/admin/profile',
    method: 'get'
  })
}

// 修改管理员信息
export function updateAdminInfo(data) {
  return request({
    url: '/api/v1/admin/info',
    method: 'put',
    data
  })
}


// ==================== 商家管理 ====================
// 获取商家列表
export function getMerchantList(params) {
  return request({
    url: '/api/v1/admin/merchants',
    method: 'get',
    params: {
      page: params.pageNum,
      size: params.pageSize,
      ...params
    }
  })
}

// 搜索商家
export function searchMerchants(params) {
  return request({
    url: '/api/v1/admin/merchants/search',
    method: 'get',
    params: {
      keyword: params.keyword,
      page: params.pageNum,
      size: params.pageSize
    }
  })
}

// 获取商家详情
export function getMerchantDetail(id) {
  return request({
    url: `/api/v1/admin/merchants/${id}`,
    method: 'get'
  })
}

// 获取非审核通过的商家列表（待审核和已拒绝）
export function getNonApprovedMerchants(params) {
  return request({
    url: '/api/v1/admin/merchants/non-approved',
    method: 'get',
    params: {
      page: params.pageNum,
      size: params.pageSize,
      ...params
    }
  })
} 
// 审核商家
export function auditMerchant(id, data) {
  return request({
    url: `/api/v1/admin/merchants/${id}/audit`,
    method: 'post',
    params: {
      status: data.status
    },
    data: {
      comment: data.comment
    }
  })
}

// 更新商家状态
export function updateMerchantStatus(id, status) {
  return request({
    url: `/api/v1/admin/merchants/${id}/status?status=${status}`,
    method: 'put'
  })
}

// 删除商家
export function deleteMerchant(id) {
  return request({
    url: `/api/v1/admin/merchants/${id}`,
    method: 'delete'
  })
}

// 更新商家信息
export function updateMerchant(id, data) {
  return request({
    url: `/api/v1/admin/merchants/${id}`,
    method: 'put',
    data
  })
}

// 获取商家统计
export function getMerchantStatistics() {
  return request({
    url: '/api/v1/admin/merchants/statistics',
    method: 'get'
  })
}

// ==================== 商品管理 ====================
// 获取商家的商品列表
export function getMerchantProducts(merchantId, params) {
  return request({
    url: `/api/v1/products/merchant/${merchantId}`,
    method: 'get',
    params: {
      pageNum: params?.pageNum || 1,
      pageSize: params?.pageSize || 10
    }
  })
}

// 更新商品状态（上架/下架）
export function updateProductStatus(id, enabled) {
  return request({
    url: `/api/v1/products/${id}/status`,
    method: 'put',
    params: { enabled }
  })
}

// 更新商品推荐状态
export function updateProductRecommendStatus(id, isRecommend) {
  return request({
    url: `/api/v1/products/${id}/recommend`,
    method: 'put',
    params: { isRecommend }
  })
}

// 更新商品新品状态
export function updateProductNewStatus(id, isNew) {
  return request({
    url: `/api/v1/products/${id}/new`,
    method: 'put',
    params: { isNew }
  })
}

// 更新商品热销状态
export function updateProductHotStatus(id, isHot) {
  return request({
    url: `/api/v1/products/${id}/hot`,
    method: 'put',
    params: { isHot }
  })
}

// ==================== 订单管理 ====================
// 获取订单列表
export function getOrderList(params) {
  return request({
    url: '/api/v1/admin/orders',
    method: 'get',
    params
  })
}

// 获取订单详情
export function getOrderDetail(id) {
  return request({
    url: `/api/v1/admin/orders/${id}`,
    method: 'get'
  })
}

// 更新订单状态
export function updateOrderStatus(id, data) {
  return request({
    url: `/api/v1/admin/orders/${id}/status`,
    method: 'put',
    data
  })
}

// 获取订单统计
export function getOrderStatistics() {
  return request({
    url: '/api/v1/admin/orders/statistics',
    method: 'get'
  })
}

// 获取退款订单列表
export function getRefundOrderList(params) {
  return request({
    url: '/api/v1/admin/orders/refunds',
    method: 'get',
    params
  })
}

// 审核退款申请
export function auditRefund(id, data) {
  return request({
    url: `/api/v1/admin/orders/refunds/${id}/audit`,
    method: 'put',
    data
  })
}

// ==================== 系统管理 ====================
// 获取系统设置
export function getSystemSettings() {
  return request({
    url: '/api/v1/admin/settings',
    method: 'get'
  })
}

// 更新系统设置
export function updateSystemSettings(data) {
  return request({
    url: '/api/v1/admin/settings',
    method: 'put',
    data
  })
}

// 获取系统日志
export function getSystemLogs(params) {
  return request({
    url: '/api/v1/admin/logs',
    method: 'get',
    params
  })
}

// 获取日志详情
export function getLogDetail(id) {
  return request({
    url: `/api/v1/admin/logs/${id}`,
    method: 'get'
  })
}

// ==================== 数据统计 ====================
// 获取系统概览
export function getSystemOverview() {
  return request({
    url: '/api/v1/admin/statistics/overview',
    method: 'get'
  })
}



// ==================== 评论管理 ====================
// 获取待审核评论列表
export function getPendingComments(params) {
  return request({
    url: '/api/v1/admin/comments/pending',
    method: 'get',
    params: {
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10
    }
  })
}

// 审核评论
export function auditComment(commentId, status, remark) {
  return request({
    url: `/api/v1/admin/comments/${commentId}/audit`,
    method: 'post',
    params: {
      status,
      remark
    }
  })
}

// 批量审核评论
export function batchAuditComments(data) {
  return request({
    url: '/api/v1/admin/comments/batch-audit',
    method: 'post',
    data
  })
}

// 获取评论举报列表
export function getCommentReports(params) {
  return request({
    url: '/api/v1/admin/comments/reports',
    method: 'get',
    params: {
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10
    }
  })
}

// 处理评论举报
export function handleCommentReport(data) {
  return request({
    url: '/api/v1/admin/comments/reports/handle',
    method: 'post',
    data
  })
}

// 添加敏感词
export function addSensitiveWord(data) {
  return request({
    url: '/api/v1/admin/comments/sensitive-words',
    method: 'post',
    data
  })
}

// 删除敏感词
export function deleteSensitiveWord(id) {
  return request({
    url: `/api/v1/admin/comments/sensitive-words/${id}`,
    method: 'delete'
  })
}

// 获取敏感词列表
export function getSensitiveWords() {
  return request({
    url: '/api/v1/admin/comments/sensitive-words',
    method: 'get'
  })
}

// 添加评论规则
export function addCommentRule(data) {
  return request({
    url: '/api/v1/admin/comments/rules',
    method: 'post',
    data
  })
}

// 更新评论规则
export function updateCommentRule(id, data) {
  return request({
    url: `/api/v1/admin/comments/rules/${id}`,
    method: 'put',
    data
  })
}

// 删除评论规则
export function deleteCommentRule(id) {
  return request({
    url: `/api/v1/admin/comments/rules/${id}`,
    method: 'delete'
  })
}

// 获取评论规则列表
export function getCommentRules() {
  return request({
    url: '/api/v1/admin/comments/rules',
    method: 'get'
  })
}

// 评论质量评分
export function scoreCommentQuality(commentId, score) {
  return request({
    url: `/api/v1/admin/comments/quality-score/${commentId}`,
    method: 'post',
    params: { score }
  })
}

// ==================== 用户管理 ====================
// 获取指定角色的用户列表
export function getUserListByRole(roleId) {
  return request({
    url: `/api/v1/user/role/${roleId}/users`,
    method: 'get'
  })
}

// 获取用户信息
export function getUserInfo(userId) {
  return request({
    url: `/api/v1/user/profile/${userId}`,
    method: 'get'
  })
}

// 更新用户状态
export function updateUserStatus(userId, status) {
  return request({
    url: `/api/v1/user/status/${userId}`,
    method: 'put',
    params: { status }
  })
}

// 获取用户行为统计
export function getUserBehaviorStats(userId) {
  return request({
    url: userId ? `/api/v1/statistics/user-behavior/${userId}` : '/api/v1/admin/user-behavior',
    method: 'get'
  })
}

// 获取用户行为历史
export function getUserBehaviorHistory(userId, params) {
  return request({
    url: `/api/v1/statistics/user-behavior/history/${userId}`,
    method: 'get',
    params
  })
}

// 获取用户分类偏好
export function getUserCategoryPreferences(userId, limit = 5) {
  return request({
    url: `/api/v1/statistics/user-behavior/preferences/${userId}`,
    method: 'get',
    params: { limit }
  })
}

// 获取用户行为趋势
export function getUserBehaviorTrend(userId, behaviorType, days) {
  return request({
    url: `/api/v1/statistics/user-behavior/trend/${userId}`,
    method: 'get',
    params: { behaviorType, days }
  })
}

// 获取用户行为热力图
export function getUserBehaviorHeatmap(userId, behaviorType) {
  return request({
    url: `/api/v1/statistics/user-behavior/heatmap/${userId}`,
    method: 'get',
    params: { behaviorType }
  })
} 

